newport_gpu 0.2.0

Thread safe render abstraction layer for Newport engine
docs.rs failed to build newport_gpu-0.2.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

This crate is the HAL for the GPU. Currently Vulkan is the only back end available. The design and architecture was originally concepted after reading http://alextardif.com/RenderingAbstractionLayers.html

Warning

This package is still in a very early state. The API is currently super volatile. I would not recommend using this package if you don't plan on handling the unknown future changes.

Goals

  • Abstraction layer should be as lightweight as possible. As many API layer specfic concepts should be hidden from the user

  • Abstraction layer should be as simple as possible. There will be code complexity that is unavoidable but they should be rare. If the user ends up spending too much time debugging just to get to the meat of their calls then we have failed

  • Abstraction layer should be easy to maintain and add on. The hope is that the above points aid this goal

Needs

  • Ability to create multiple devices to allow multiple GPU work if desired
  • Create, upload, and destroy resources (buffers, textures, shaders, pipelines, etc)
  • Gather, submit, and wait on command work from various passes, in a multicore-compatible way
  • Automatic device memory management